//********************************************************************************************************
//*程 序 作 者 ： 杨 刘 佳
//*完 成 日 期 ： 2 0 2 4 年 3 月 5 日
//*章 节 ： 第一章
//*题  目 ： 合并两个已经按从小到大顺序排列好的字符串
//********************************************************************************************************         

#include<iostream>
#include<iomanip>

using namespace std;
int main()
{
	string str1;
	string str2;
	string result;
	
	void combine(string *str1, string *str2, string *final);
	
	cout << "请输入第一个顺序按从小排到大排列的字符串：" << endl;
	cin >> str1;
	
	cout << "请输入第二个顺序按从小排到大排列的字符串：" << endl;
	cin >> str2;

	combine(&str1, &str2, &result);
	
	cout << result << endl;
	
	return 0;
}

//********************************************************************************************************
//定义一个子函数，实现合并两个字符串，并按从大到小顺序排列
//********************************************************************************************************
void combine(string *str1, string *str2, string *final)
{
	int i = 0;
	int j = 0;
	int k = 0;
	
	while(*(str1 + i) != '\0' && *(str2 + i) != '\0')
	{
		if(*(str1 + i) > *(str2 + j))
		*(final + k) = *(str1 + i);
		else
		*(final + k) = *(str2 + j);
		i++;
		j++;
		k++;
	}
	
	while(*(str1 + i) != '\0')
	{
	*(final + k) = *(str1 + i);
	k++;
	i++;
	}
	
	while(*(str2 + j) != '\0')
	{
	*(final + k) = *(str2 + j);
	k++;
	j++;
	}
	
	*(final + k) = '\0';
}